home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -serious- / programming / c / stormamiga_lib-v45_00d / include / stdio_stormamiga.h < prev    next >
C/C++ Source or Header  |  2000-02-28  |  6KB  |  191 lines

  1. #ifndef  STDIO_STORMAMIGA_H
  2. #define  STDIO_STORMAMIGA_H
  3.  
  4. /*
  5. **     $VER: stdio_stormamiga.h 1.2 (18.09.98)
  6. **             Includes Release 45.00
  7. **
  8. **    Copyright © 1996/2000 by CyberdyneSystems
  9. **
  10. **            written by Matthias Henze
  11. **               All Rights Reserved
  12. */
  13.  
  14. #ifndef  STORMAMIGA_H
  15.   #include <stormamiga.h>
  16. #endif
  17. #ifndef _INCLUDE_STDIO_H
  18.   #include <stdio.h>
  19. #endif
  20. #ifndef _INCLUDE_ERRNO_H
  21.   #include <errno.h>
  22. #endif
  23. #ifndef _INCLUDE_FILEDEFS_H
  24.   #include <filedefs.h>
  25. #endif
  26. #ifndef _INCLUDE_PRAGMA_DOS_LIB_H
  27.   #include <pragma/dos_lib.h>
  28. #endif
  29.  
  30. #ifdef __cplusplus
  31.   extern "C" {
  32. #endif
  33.  
  34. /*----- UNIX-functions -----*/
  35.  
  36. int   getw        (FILE *);
  37. int   putw        (int, FILE *);
  38. void  setbuffer   (FILE *, char *, int);
  39. int   setlinebuf  (FILE *);
  40. int   snprintf    (char *, size_t, cchar *, ...);
  41. int   vsnprintf   (char *, size_t, cchar *, va_list);
  42. int   vscanf      (cchar *, va_list);
  43. int   vfscanf     (FILE *, cchar *, va_list);
  44. int   vsscanf     (cchar *, cchar *, va_list);
  45.  
  46. /*----- stormamiga-AmigaDOS-functions -----*/
  47.  
  48. int   SPRINTF         (char *, cchar *, ...);
  49. int   VSPRINTF        (char *, cchar *, va_list);
  50.  
  51. /*----- stormamiga-functions -----*/
  52.  
  53. #ifdef STORMAMIGA_64BIT
  54.   #define printf      printf64
  55.   #define printf_     printf64_
  56.   #define fprintf     fprintf64
  57.   #define fprintf_    fprintf64_
  58.   #define sprintf     sprintf64
  59.   #define sprintf_    sprintf64_
  60.   #define snprintf    snprintf64
  61.   #define snprintf_   snprintf64_
  62.   #define vprintf     vprintf64
  63.   #define vprintf_    vprintf64_
  64.   #define vfprintf    vfprintf64
  65.   #define vfprintf_   vfprintf64_
  66.   #define vsprintf    vsprintf64
  67.   #define vsprintf_   vsprintf64_
  68.   #define vsnprintf   vsnprintf64
  69.   #define vsnprintf_  vsnprintf64_
  70.   #define scanf       scanf64
  71.   #define scanf_      scanf64_
  72.   #define fscanf      fscanf64
  73.   #define fscanf_     fscanf64_
  74.   #define sscanf      sscanf64
  75.   #define sscanf_     sscanf64_
  76.   #define vscanf      vscanf64
  77.   #define vscanf_     vscanf64_
  78.   #define vfscanf     vfscanf64
  79.   #define vfscanf_    vfscanf64_
  80.   #define vsscanf     vsscanf64
  81.   #define vsscanf_    vsscanf64_
  82. #endif
  83.  
  84. int   printf64        (cchar *, ...);
  85. int   printf_         (cchar *, ...);
  86. int   printf64_       (cchar *, ...);
  87. int   fprintf64       (FILE *, cchar *, ...);
  88. int   fprintf_        (FILE *, cchar *, ...);
  89. int   fprintf64_      (FILE *, cchar *, ...);
  90. int   sprintf64       (char *, cchar *, ...);
  91. int   sprintf_        (char *, cchar *, ...);
  92. int   sprintf64_      (char *, cchar *, ...);
  93. int   snprintf64      (char *, size_t, cchar *, ...);
  94. int   snprintf_       (char *, size_t, cchar *, ...);
  95. int   snprintf64_     (char *, size_t, cchar *, ...);
  96. int   vprintf64       (cchar *, va_list);
  97. int   vprintf_        (cchar *, va_list);
  98. int   vprintf64_      (cchar *, va_list);
  99. int   vfprintf64      (FILE *, cchar *, va_list);
  100. int   vfprintf_       (FILE *, cchar *, va_list);
  101. int   vfprintf64_     (FILE *, cchar *, va_list);
  102. int   vsprintf64      (char *, cchar *, va_list);
  103. int   vsprintf_       (char *, cchar *, va_list);
  104. int   vsprintf64_     (char *, cchar *, va_list);
  105. int   vsnprintf64     (char *, size_t, cchar *, va_list);
  106. int   vsnprintf_      (char *, size_t, cchar *, va_list);
  107. int   vsnprintf64_    (char *, size_t, cchar *, va_list);
  108. int   scanf64         (cchar *, ...);
  109. int   scanf_          (cchar *, ...);
  110. int   scanf64_        (cchar *, ...);
  111. int   fscanf64        (FILE *, cchar *, ...);
  112. int   fscanf_         (FILE *, cchar *, ...);
  113. int   fscanf64_       (FILE *, cchar *, ...);
  114. int   sscanf64        (cchar *, cchar *, ...);
  115. int   sscanf_         (cchar *, cchar *, ...);
  116. int   sscanf64_       (cchar *, cchar *, ...);
  117. int   vscanf64        (cchar *, va_list);
  118. int   vscanf_         (cchar *, va_list);
  119. int   vscanf64_       (cchar *, va_list);
  120. int   vfscanf64       (FILE *, cchar *, va_list);
  121. int   vfscanf_        (FILE *, cchar *, va_list);
  122. int   vfscanf64_      (FILE *, cchar *, va_list);
  123. int   vsscanf64       (cchar *, cchar *, va_list);
  124. int   vsscanf_        (cchar *, cchar *, va_list);
  125. int   vsscanf64_      (cchar *, cchar *, va_list);
  126.  
  127. #ifdef __cplusplus
  128.   }
  129. #endif
  130.  
  131. #ifdef STORMAMIGA_INLINE
  132.  
  133. /*----- ANSI C-functions -----*/
  134.  
  135. #define getc             fgetc
  136. #define putc             fputc
  137.  
  138. __inline int fgetc       (FILE *f)
  139. { return (*f -> getch)   (f); }
  140.  
  141. __inline int ungetc      (int ch, FILE *f)
  142. { return (*f -> ungetch) (f, ch); }
  143.  
  144. __inline int fputc       (int ch, FILE *f)
  145. { return (*f->putch)     (f, ch); }
  146.  
  147. __inline int putchar     (int ch)
  148. { return fputc           (ch, stdout); }
  149.  
  150. __inline int feof        (FILE *f)
  151. { return (*f -> eof)     (f); }
  152.  
  153. __inline int ferror      (FILE *f)
  154. { return f -> error; }
  155.  
  156. __inline void clearerr   (FILE *f)
  157. { f -> error = 0; }
  158.  
  159. __inline void perror     (cchar *s)
  160. { PrintFault             (errno, (STRPTR) s); }
  161.  
  162. __inline int remove      (cchar *s)
  163. { return DeleteFile      ((STRPTR) s) == 0; }
  164.  
  165. __inline int rename      (cchar *s, cchar *ns)
  166. { return Rename          ((STRPTR) s,(STRPTR) ns) == 0; }
  167.  
  168. __inline void setbuf     (FILE *f, char *buffer)
  169. { setvbuf                (f, buffer, _IOFBF, BUFSIZ); }
  170.  
  171. /*----- UNIX-functions -----*/
  172.  
  173. __inline void setbuffer  (FILE *f, char *buffer, int size)
  174. { setvbuf                (f, buffer, _IOFBF, size); }
  175.  
  176. __inline int setlinebuf  (FILE *f)
  177. {
  178.   (void) setvbuf         (f, (char *) NULL, _IOLBF, (size_t) 0);
  179.   return NULL;
  180. }
  181. #endif  /* STORMAMIGA_INLINE */
  182.  
  183. #ifdef STORMAMIGA_UNIXPATH
  184.   __inline int remove_u (cchar *path)
  185.   { return remove       (path); }
  186.  
  187.   #define remove(path)  remove_u(UnixToAmigaPath(path))
  188. #endif  /* STORMAMIGA_UNIXPATH */
  189.  
  190. #endif  /* STDIO_STORMAMIGA_H */
  191.